package com.xinqing.test.modle;


import com.alibaba.fastjson.JSONArray;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

public class RequestTag implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 请求Id
     */
    private String requestId;

    /**
     * 是否校验规则 “0”不校验 “1”校验 “2” 校验结果和查询标签对应的结果集
     */
    private String serviceType;
    /**
     * 设备号
     */
    private String udid;
    /**
     * 用户名
     */
    private String userName;
    /**
     * 标签名称
     */
    private JSONArray tagsName;
    /**
     * 是否查Redis “0”不查 “1”查
     */
    private String redisFlag = "0";
    /**
     * 是否查HBase
     */
    private String hbaseFlag = "1";
    /**
     * 标签过滤条件
     */
    private String tagFilter;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 为兼容tagFilter衍生出来的新客群表达式
     */
    private String newFilter;

    //手机号
    private String phone;
    //邮箱
    private String email;

    private List<Map<String, Map<String, Object>>> planList;

    private Map<String, Map<String, List<String>>> planTagMap;

    public RequestTag() {
    }

    public RequestTag(String requestId, String serviceType, String udid, String userName, JSONArray tagsName,
                      String redisFlag, String hbaseFlag, String tagFilter, String productName, String newFilter,
                      List<Map<String, Map<String, Object>>> planList) {
        this.requestId = requestId;
        this.serviceType = serviceType;
        this.udid = udid;
        this.userName = userName;
        this.tagsName = tagsName;
        this.redisFlag = redisFlag;
        this.hbaseFlag = hbaseFlag;
        this.tagFilter = tagFilter;
        this.productName = productName;
        this.newFilter = newFilter;
        this.planList = planList;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getRequestId() {
        return requestId;
    }

    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }

    public String getServiceType() {
        return serviceType;
    }

    public void setServiceType(String serviceType) {
        this.serviceType = serviceType;
    }

    public String getUdid() {
        return udid;
    }

    public void setUdid(String udid) {
        this.udid = udid;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public JSONArray getTagsName() {
        return tagsName;
    }

    public void setTagsName(JSONArray tagsName) {
        this.tagsName = tagsName;
    }

    public String getRedisFlag() {
        return redisFlag;
    }

    public void setRedisFlag(String redisFlag) {
        this.redisFlag = redisFlag;
    }

    public String getHbaseFlag() {
        return hbaseFlag;
    }

    public void setHbaseFlag(String hbaseFlag) {
        this.hbaseFlag = hbaseFlag;
    }

    public String getTagFilter() {
        return tagFilter;
    }

    public void setTagFilter(String tagFilter) {
        this.tagFilter = tagFilter;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public void setNewFilter(String newFilter) {
        this.newFilter = newFilter;
    }

    public String getNewFilter() {
        return newFilter;
    }

    public List<Map<String, Map<String, Object>>> getPlanList() {
        return planList;
    }

    public void setPlanList(List<Map<String, Map<String, Object>>> planList) {
        this.planList = planList;
    }

    public Map<String, Map<String, List<String>>> getPlanTagMap() {
        return planTagMap;
    }

    public RequestTag setPlanTagMap(Map<String, Map<String, List<String>>> planTagMap) {
        this.planTagMap = planTagMap;
        return this;
    }

    public String getPhone() {
        return phone;
    }

    public RequestTag setPhone(String phone) {
        this.phone = phone;
        return this;
    }

    public String getEmail() {
        return email;
    }

    public RequestTag setEmail(String email) {
        this.email = email;
        return this;
    }

    @Override
    public String toString() {
        return "RequestTag{" +
                "requestId='" + requestId + '\'' +
                ", serviceType='" + serviceType + '\'' +
                ", udid='" + udid + '\'' +
                ", userName='" + userName + '\'' +
                ", tagsName=" + tagsName +
                ", redisFlag='" + redisFlag + '\'' +
                ", hbaseFlag='" + hbaseFlag + '\'' +
                ", tagFilter='" + tagFilter + '\'' +
                ", productName='" + productName + '\'' +
                ", newFilter='" + newFilter + '\'' +
                ", phone='" + phone + '\'' +
                ", email='" + email + '\'' +
                ", planList=" + planList +
                ", planTagMap=" + planTagMap +
                '}';
    }
}